return GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (treeview), "rows"));
}
+static void
+log_operation_for_path (GtkTreePath *path,
+ const char *operation_name)
+{
+ char *path_string;
+
+ path_string = gtk_tree_path_to_string (path);
+
+ g_printerr ("%10s %s\n", operation_name, path_string);
+
+ g_free (path_string);
+}
+
+static void
+log_operation (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ const char *operation_name)
+{
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path (model, iter);
+
+ log_operation_for_path (path, operation_name);
+
+ gtk_tree_path_free (path);
+}
+
/* moves iter to the next iter in the model in the display order
* inside a treeview. Returns FALSE if no more rows exist.
*/
}
n_rows -= count_children (model, &iter) + 1;
+ log_operation (model, &iter, "remove");
gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
set_rows (treeview, n_rows);
}
GtkTreeIter *iter)
{
guint n = gtk_tree_model_iter_n_children (model, iter);
+ GtkTreeIter new_iter;
static guint counter = 0;
if (n > 0 && g_random_boolean ())
}
gtk_tree_store_insert_with_values (GTK_TREE_STORE (model),
- NULL,
+ &new_iter,
iter,
g_random_int_range (-1, n),
0, ++counter,
-1);
+ log_operation (model, &new_iter, "add");
}
static void
path = gtk_tree_model_get_path (model, &iter);
if (!gtk_tree_view_row_expanded (treeview, path))
{
+ log_operation (model, &iter, "expand");
gtk_tree_view_expand_row (treeview, path, FALSE);
gtk_tree_path_free (path);
return;
if (last)
{
+ log_operation_for_path (last, "collapse");
gtk_tree_view_collapse_row (treeview, last);
gtk_tree_path_free (last);
}